/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.qp.smsmarketing.controller;

import com.qp.smsmarketing.dao.LembreteDAO;
import com.qp.smsmarketing.view.View;
import com.qp.smsmarketing.view.ViewInformacaoLembrete;
import com.qp.smsmarketing.view.ViewNovoLembrete;
import com.qp.smsmarketing.entity.Lembrete;
import java.awt.Color;
import java.util.Date;
import java.util.List;
import javax.swing.JOptionPane;

/**
 *
 * @author joasramos
 */
public class ControleLembrete {

    private Lembrete lembrete;
    private View form;
    private LembreteDAO daoLembrete;

    /**
     *
     * @param view
     */
    public ControleLembrete(View view) {
        this.form = view;
        daoLembrete = new LembreteDAO(new Lembrete());
    }

    /**
     * Metodo para setar todas os lembretes ou datas comemorativas no calendario
     * do Sistema;
     */
    public void setCalendarioLembretes() {
        List<Lembrete> listaLembretes = getListaLembretes();
        Date[] datasComemorativas = new Date[listaLembretes.size()];

        for (int i = 0; i < listaLembretes.size(); i++) {
            datasComemorativas[i] = listaLembretes.get(i).getData();
        }

        if (listaLembretes.isEmpty()) {
            form.getCalendario().clearFlaggedDates();
        }
        for (int i = 0; i < listaLembretes.size(); i++) {
            form.getCalendario().setFlaggedDates(datasComemorativas);
            form.getCalendario().setFlaggedDayForeground(Color.red);
        }

    }

    /**
     *
     * @return - Lista com todos os Lembretes cadastrados
     */
    public List<Lembrete> getListaLembretes() {
        List<Lembrete> lista = daoLembrete.buscarTodos();
        return lista;
    }

    /**
     *
     * @param data
     * @return
     */
    public List<Lembrete> getListaLembretesPorData(Date data) {
        List<Lembrete> list = daoLembrete.getlistaLembretesporData(data);
        return list;
    }

    /**
     *
     * @param dataSelecionada
     */
    public void exibiInformacaoLembrete(Date dataSelecionada) {
        List<Lembrete> listaLembretes = getListaLembretesPorData(dataSelecionada);
        if (!(listaLembretes == null) && !listaLembretes.isEmpty()) {
            new ViewInformacaoLembrete(form, dataSelecionada, listaLembretes, daoLembrete, true);
        } else {
            new ViewNovoLembrete(form, dataSelecionada, true);
        }
    }

    public void criarLembrete() {
    }
}
